// 视频、音频 添加文件
var module=$('.stopModule')	//提示模态框
var proEle = document.getElementById("progress"); // 初始化进度条
	proEle.value=0

createFile=function(type,start,end,playTime,week,path,size,filename){
	var replay=[]
	if(week){
		for(var i=0;i<week.length;i++){
			if(week.eq(i).hasClass('active3')){
				var j=i+1
				if(j==7){j=0}
				replay.push(j)
			}
		}
	}

	if(replay=='undefined'){
		module.html('请确保参数正确！')
		setTimeout(function(){
			module.fadeOut()
		},1300)
		return false
	}

	var formdata=new FormData()
		formdata.append('playWay',type)
		if(start){formdata.append('startDate',start)}
		if(end){formdata.append('endDate',end)}
		if(playTime){formdata.append('playTime',playTime)}
		if(replay){formdata.append('replay',replay)}
		formdata.append('path',path)
		formdata.append('size',size)
		formdata.append('filename',filename)
	return new Promise(function(resolve,reject){
	$.ajax({
		url:'',
		type:'POST',
		data:formdata,
		dataType: 'JSON',
	    cache: false,        // 不缓存
	    processData: false,  // jQuery不要去处理发送的数据
	    contentType: false,  
		success:function(res){
			console.log(res)
			if(res.code=='200'){
				if(type=='online'){
					send(res.data)
				}
				else{
					module.html('正在刷新页面……')
					setTimeout(function(){
						module.fadeOut()
						window.location.reload()
					},1300)
				}
			}
			else{
				module.html(res.message)
				setTimeout(function(){
					module.fadeOut()
				},1300)
			}
		},
		error:function(err){
			var msg=null
			if(err.message==null||err.message==undefined){
				msg='请查看网络是否连接或所传文件是否正确！'
			}
			else {
				msg=err.message
			}
			module.html('上传失败！'+msg)
			setTimeout(function(){
				module.fadeOut()
			},2000)
		}
	})
})
}

//======================================大文件上传=================================================
	console.log('进入大文件上传……')
var jdt=$('#jindutiaoCount')	// 进度条框
var path,size,filename
var xhr = new XMLHttpRequest();//上传请求

	xhr.onreadystatechange = function () {//上传状态监听
	
			var week=null
			var playTime=$('#choosePlayDate').val()
			var oli=$('.program_choose li')	
			var act2=$('.active2').eq(1)
	
			if(act2.html()=='节目表'){
				week=$('.program_choose.pro li')
			}	
			if(act2.html()=='时间点'){
				week=$('.program_choose.dat li')
			}

			if (xhr.readyState == 4 && xhr.status == 200) {
				var res = xhr.responseText
				var json = eval("(" + res + ")");	//转化为json数据
				console.log('转化json',json)
				path=json.data.path
				size=json.data.size
				filename=json.data.filename

				jdt.css('display','none')
				module.html('上传成功！')
				setTimeout(function(){
					module.fadeOut()
					// window.location.reload()
				},1300)
		//	上传成功后，添加数据
				var types=$('#dataCount').val()
					if(types=='list'){
						var start=$('#inpstart').val()
						var end=$('#inpend').val()
					}
					if(types=='time'){
						var start=$('#inpstarts').val()
						var end=$('#inpends').val()
					}
				console.log('传递参数确认:',types,start,end,playTime,week,path,size,filename)
	// 传参解释： 	类型	开始时间	结束时间	定时时间	已选的重复周期播放	直播判断标记	三个基本参数
				createFile(types,start,end,playTime,week,path,size,filename)
			}	
		}
var proEle = document.getElementById("progress");	// 进度条
	proEle.value=0
var loaded = 0;//记录服务器上已上传成功的字节数
	xhr.upload.onprogress = function(e) {//上传进度监听
		proEle.value = loaded + e.loaded;
	};		
	
	function bigFileUpload(fileEle,types,ol) {
			console.log('传递进来的参数确认：',fileEle)
			module.fadeIn().html('正在上传文件，请勿刷新页面………')
			jdt.css('display','block')
			var file = fileEle;
				//后台通过name、size、type、lastModified四个属性来确定文件唯一性。
			var param = "name=" + file.name + "&size=" + file.size + "&type="+ file.type + "&lastModified=" + file.lastModified;
			console.log(param)
			var dc=[]
			dc.push(types)
			$('#dataCount').val(dc)
			/*
			 * 进度条初始化
			 */
			proEle.value = 0;
			proEle.max = file.size;
			
			var xhrCheck = new XMLHttpRequest();//检查请求
			xhrCheck.open("GET", "" + param, true);
			xhrCheck.send();//发送检查请求
			xhrCheck.onreadystatechange = function() {//检查状态监听，成功后执行发送上传请求
				module.html('正在上传文件……')
				if (xhrCheck.status == 200 && xhrCheck.readyState == 4) { // 服务器完成发送响应
					loaded = parseInt(xhrCheck.responseText);
					proEle.value = loaded;
					if (loaded < file.size) {
						checkUpdata()
					} else {
						module.html('再次上传该文件……')
						checkUpdata()
					}
				}
				checkUpdata=function(){
					xhr.open("POST", ""+ param, true);
					xhr.send(file.slice(loaded, file.size, file.type));//通过File.slice方法获得未上传过的数据信息,再上传（重点）
				}
			}
	}	
	
//====================================节目表================================
$('.program_btn.pro').on('click',function(){
	var fileEle = document.querySelectorAll("#program .file")[0];
	bigFileUpload(fileEle.files[0],'list',null)
})
//====================================时间点================================
$('.program_btn.dat').on('click',function(){
	var fileEle = document.querySelectorAll("#addDate .file")[0];

	bigFileUpload(fileEle.files[0],'time',null)
})
//================================直 播=====================================
	//	情况1-非录音
$('.program_btn.stv').on('click',function(){
	var stv=document.getElementsByClassName('stv')[0]
	var fileEle = document.querySelectorAll("#addStv .file")[0];
	bigFileUpload(fileEle.files[0],'online','ol')
})
	//	情况2 - 录音	点击 保存
function uploadAudio() {
	module.fadeIn().html('正在上传文件，请勿刷新页面………')
	var files=recorder.getBlob()
	var now=new Date()			
	var filename='我的录音'+now.getHours()+'：'+now.getMinutes()+'：'+now.getSeconds()+'.mp3'
	var file=new File([files], filename, { type: "audio/mp3", lastModified: Date.now() })
    bigFileUpload(file,'online','ol')
}




//============================删除========================================
var l=null;
	$('.list_count').on('mouseover','li',function(){
		l=$(this).index()
	})
	lr_remove=function(thats,that){
		var lr_=confirm('是否删除 '+$('.list_left').html())
		var id=$('.list_count li').eq(l).children('.list_right').attr('dataId')
		if(lr_){
		ajax({
				url:'',
				type:'POST',
				data:{
					id:id
				},success:function(res){
					thats.remove()
					module.html(res.message)
					setTimeout(function(){
						module.fadeOut()
						window.location.reload()
					},1300)
				},error:function(){
					module.html('删除出错！')
					setTimeout(function(){
						module.fadeOut()
					},2000)
				}
			})
		}		
	}

//==========================websocket====================================
			var userId=$('#userId').val()
			var websocket = null;
		    //判断当前浏览器是否支持WebSocket
		    if ('WebSocket' in window) {
		        websocket = new WebSocket("ws://");
		    }
		    else {
		    	module.html('您当前浏览器不支持websocket！')
				setTimeout(function(){
					module.fadeOut()
				},2000)
		    }
		
		    //连接发生错误的回调方法
		    websocket.onerror = function () {
		       console.log("WebSocket连接发生错误");
		    }
		    //连接成功建立的回调方法
		    websocket.onopen = function () {
		        console.log("WebSocket连接成功");
		    }
		    //连接关闭的回调方法
		    websocket.onclose = function () {
		        module.html("WebSocket连接关闭，即将刷新页面……")
				setTimeout(function(){
					module.fadeOut()
					 window.location.reload()
				},1300)
		    }


//===========================直播转到音视频=======================================
var count=$('.play_count1')
var audioReg=/^(mp3)|(wma)|(flac)|(aac)|(mmf)|(amr)|(m4a)|(m4r)|(ogg)|(wav)$/i
var videoReg=/^(rm)|(rmvb)|(wmv)|(avi)|(mp4)|(3gp)|(mkv)|(mpg)|(mpeg)|(mov)$/i
var getListTime=null,getDuringTime=null	// 保存节目表和时间点的播放数据
	//发送消息
	function send(url) {
	    var message = url
	    websocket.send(url);
	}
	// var Audio=document.getElementById('audio'),Video=document.getElementById('video')
var Audio=$('.play_count1 #audio'),Video=$('.play_count1 #video'),countBg=$('.count_bg')	
		//接收到消息的回调方法
	websocket.onmessage = function (event) {
	    console.log(event.data);
	    module.fadeIn().html('有直播正在进行，进入直播中……')
	    var pl=event.data
	    var fm=event.data.split('.')
	    	fm=fm[fm.length-1]
	    	console.log('即将播放的文件及格式：',fm,pl)
	    	defaultRequest.m=0
		if(audioReg.test(fm)){	// 音频
			var a=document.getElementById('audio')
			var url=Audio.attr('src')
			console.log('存储音频信息：time、url',a.currentTime,url)
			defaultRequest.currTime=a.currentTime
			playAudio(pl)
			Audio.bind('ended',function(){
				console.log('标记判断：',defaultRequest.m)
				if(defaultRequest.m>0){	//  attention:防止播放混乱冲突 
					console.log('即将结束-标记：',defaultRequest.m)
					return false
				}
				defaultRequest.m=1

				module.fadeIn().html('音频直播结束')
				setTimeout(function(){
					module.fadeOut()
				},800)
				console.log('对音频进行回放……回放时间：'+defaultRequest.currTime,url)
				Audio.attr('src',url)
				a.currentTime=defaultRequest.currTime
				/*
				* 做全局标记defaultRequest.m：当第一次回放时，标记为0，第二次回放标记为1，则在items1Url中找到该url，进行播放下一曲
				 */
			})
		}

		if(videoReg.test(fm)){	// 音频
			var v=document.getElementById('video')
			var url=Video.attr('src')
			console.log('存储音频信息：time、url',v.currentTime,url)
			defaultRequest.currTime=v.currentTime
			playVideo(pl)
			Video.bind('ended',function(){
				console.log('标记判断：',defaultRequest.m)
				if(defaultRequest.m>0){	//  attention:防止播放混乱冲突 
					console.log('即将结束-标记：',defaultRequest.m)
					return false
				}
				defaultRequest.m=1

				module.fadeIn().html('音频直播结束')
				setTimeout(function(){
					module.fadeOut()
				},800)
				console.log('对音频进行回放……回放时间：'+defaultRequest.currTime,url)
				Video.attr('src',url)
				v.currentTime=defaultRequest.currTime
				/*
				* 做全局标记defaultRequest.m：当第一次回放时，标记为0，第二次回放标记为1，则在items1Url中找到该url，进行播放下一曲
				*/
			})
		}


		setTimeout(function(){
			module.fadeOut()
		},1000)
	}

function playAudio(src){
	Audio.css('display','block').attr({'src':src,'autoplay':'autoplay'})
	countBg.css({'display':'block','background':'url(img/static/bof_bj.png) no-repeat'})
	Video.css('display','none').attr({'src':''})	
}
function playVideo(src){
	Video.css('display','block').attr({'src':src,'autoplay':'autoplay'})
	countBg.css({'display':'none'})
	Audio.css('display','none').attr({'src':''})
 }
//==============================================================================================================



























